WIRELESS COMMUNICATION CONFIGURATION USING MOTION VECTORS IN VIRTUAL, AUGMENTED, AND MIXED REALITY (xR) APPLICATIONS

ABSTRACT

Systems and methods for configuring wireless communications using motion vectors in virtual, augmented, and mixed reality (xR) applications are described. In some embodiments, an Information Handling System (IHS) may include a processor and a memory coupled to the processor, the memory having program instructions stored thereon that, upon execution by the processor, cause the IHS to: receive motion vector data representative of a direction of travel of a user wearing xR headset; and change a configuration of an antenna based upon the motion vector data, wherein the antenna enables the IHS to wirelessly transmit xR content to the xR headset.

FIELD

The present disclosure generally relates to Information Handling Systems(IHSs), and, more particularly, to systems and methods for configuringwireless communications using motion vectors in virtual, augmented, andmixed reality (collectively referred to as “xR”) applications.

BACKGROUND

The goal of virtual reality (VR) is to immerse users in virtualenvironments. A conventional VR device obscures a user's real-worldsurroundings, such that only digitally-generated images remain visible.Those images are presented on a display such as, for example, an organiclight-emitting diode or “OLED” panel housed within a head-mounted device(HMD) or the like.

In contrast with VR, augmented reality (AR) and mixed reality (MR)operate by overlaying digitally-generated content or entities (e.g.,characters, text, hyperlinks, images, graphics, etc.) upon the user'sphysical surroundings. A typical AR/MR device includes aprojection-based optical system that displays content on a translucentor transparent surface (e.g., plastic, glass, etc.) of an HMD, heads-updisplay (HUD), eyeglasses, or the like.

In modern implementations, xR headsets (i.e., VR, AR, or MR) may bewirelessly tethered to an external computer. Conventional xR headsets donot have as much processing capability than the external computer, sothe external computer is used to generate the digital images to bedisplayed by the xR headset. The xR headset transmits information to thecomputer regarding the state of the user (e.g., head position, proximityto other users, etc.), which in turn enables the external computer todetermine which image to show to the user next, and from whichperspective, as the user moves around and/or changes head position.

The inventors hereof have recognized, however, that wirelesscommunications between an xR headset and an external computer andrequire a high-bitrate continuous radio frequency (RF) signal (e.g., 5.6Gbps). The high-bandwidth communications used in xR applications isproblematic because it requires a direct line-of-sight between the xRheadset and the external computer. These issues become more difficult toaddress when the user is allowed to move freely in a room, for example.To address these and other concerns, the inventors hereof have developedsystems and methods for configuring wireless communications using motionvector data.

SUMMARY

Embodiments of systems and methods for configuring wirelesscommunications using motion vectors are described. In an illustrative,non-limiting embodiment, a an Information Handling System (IHS) mayinclude a processor; and a memory coupled to the processor, he memoryhaving program instructions stored thereon that, upon execution by theprocessor, configure or cause the IHS to: receive motion vector datarepresentative of a direction of travel of a user wearing a virtual,augmented, or mixed reality (xR) headset; and change a configuration ofan antenna based upon the motion vector data, wherein the antennaenables the IHS to wirelessly transmit xR content to the xR headset.

Motion vector data may include a first position of a macroblock in afirst frame, a second position of the macroblock in a second frame, atime interval between the second frame and the first frame, and adistance between the second and first positions. The first and secondframes may be obtained, at least in part, using a camera mounted on thexR headset, and the macroblock may be identified as a subset of pixelshaving a contrast above or below a threshold value. Motion vector datamay also include at least one of: a location, a direction of movement, alinear speed, an angular speed, a linear acceleration, or an angularacceleration of the user.

The program instructions may configure or cause the IHS to determine,using the motion vector data, that the user has reached a selectedboundary within a room. The antenna may be part of an antenna array. Theantenna array may be configured to provide a multi-gigabit per secondspeed wireless communication over a 60 GHz frequency band. And change ofthe configuration may include a change of a radiation pattern of theantenna array.

The antenna array may be configurable to provide a plurality ofdifferent radiation patterns, each different radiation pattern having adistinct lobe configuration. The selected boundary is disposed betweentwo neighboring lobes. The change of the configuration may include:turning a given antenna of the antenna array on in response to the userhaving reached the selected boundary, or turning the given antenna offin response to the user having reached the selected boundary.

The change of the configuration may include increasing an amplificationof a signal received or transmitted by an individual antenna of theantenna array in response to the user having reached the selectedboundary. Additionally or alternatively, the change of the configurationmay include application of different beamforming settings to the antennaarray to increase a signal strength between the xR headset and the IHSin response to the user having reached the selected boundary.

Changing the configuration of the antenna may include changing acommunication protocol between the IHS and the xR headset in response tothe user having reached the selected boundary. Moreover, the motionvector data may be predictive of the direction of travel of the user,and the change of the configuration may be performed in anticipation ofthe user reaching the selected boundary.

In some cases, the change of the configuration may occurr in response toanother determination that a signal strength of the transmission of thexR content is above a threshold value. The program instructions mayconfigure or cause the IHS to determine that the change of theconfiguration is followed by a drop in a signal strength of thetransmission of the xR content below a threshold value, and return theantenna to a previous configuration.

In another illustrative, non-limiting embodiment, a method may implementone or more of the aforementioned operations. In yet anotherillustrative, non-limiting embodiment, a hardware memory storage devicemay have program instructions stored thereon that, upon execution by anIHS, configure or cause the IHS to perform one or more of theaforementioned operations.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention(s) is/are illustrated by way of example and is/arenot limited by the accompanying figures. Elements in the figures areillustrated for simplicity and clarity, and have not necessarily beendrawn to scale.

FIG. 1A and 1B illustrate a non-limiting example of a headset used in avirtual, augmented, or mixed reality (xR) application according to someembodiments.

FIG. 2 is a block diagram of non-limiting examples of xR headsetcomponents according to some embodiments.

FIG. 3 is a block diagram of non-limiting examples of informationhandling system (IHS) components according to some embodiments.

FIG. 4 is a block diagram of a non-limiting example of a radio frequency(RF) circuit according to some embodiments.

FIG. 5 is a diagram of a non-limiting example of an xR applicationaccording to some embodiments.

FIGS. 6A and 6B are graphs illustrating non-limiting examples of motionvector data according to some embodiments.

FIG. 7 is a flowchart of a non-limiting example of a method forcorrelating wireless communication settings with a user's locationand/or movement according to some embodiments.

FIG. 8 is a flowchart of a non-limiting example of a method forconfiguring wireless communications using motion vector data accordingto some embodiments.

DETAILED DESCRIPTION

Embodiments described herein provide systems and methods for configuringwireless communications using motion vectors. These techniques areparticularly useful in virtual, augmented, and mixed reality(collectively referred to as “xR”) applications that employ head-mounteddevices (HMDs), Heads-Up Displays (HUDs), eyeglasses, or the like(collectively referred to as “xR headsets” or simply “headsets”).

In some implementations, a system may include one or more radiofrequency (RF) antennas or antenna arrays. An initial training ormapping operation selects the best antenna configuration while the useris starting a game or other xR application, for example, without anymotion. The system uses the video hardware accelerators embedded in thegraphics system of an external information handling system (IHS) todetect the direction of the user's movement by deriving or monitoringmotion vectors used in the rendering of xR images, and automaticallyswitches to a different RF antenna configuration if the currentconfiguration is providing a weak signal. Motion vectors point at thedirection of the user's movement, so using this information to switchthe antenna or otherwise re-configure the wireless transmission yieldssuperior wireless performance.

In some cases, these systems and methods may also automatically switchto a different wireless standard or protocol (e.g., WiFi) if a givencommunication channel is lost or degraded. The xR application maycontinue to run at a lower quality, for example, using the videocompression engine built in the graphics processor of the IHS to performreal-time compression of frame buffer data before transmitting images tothe xR headset.

As such, systems and methods described herein may monitor motion videodata to determine a direction or radiation pattern to switch the antennaarray to yield improved RF signals. These techniques are a sharpdeparture from conventional antenna control methods, which simplymonitor the signal strength to the communication between the IHS and thexR headset, and therefore suffer from excessive latency, especially whenthe user walks or moves about a room.

FIGS. 1A and 1B illustrate an example of an xR headset according to someembodiments. As shown, user 100 wears xR headset 101 around their headsand over their eyes. In some applications (e.g., AR and MR), user 100may see their physical environment via a see-through display system,glass, and/or lens 102 mounted on xR headset frame or body 103.Display(s) 102 may show information in the form of digital entities(e.g., characters, text, hyperlinks, images, graphics, etc.) overlayinga visible, physical environment in the user's field of view. In somecases, these digital entities may be relevant to a physical objectlocated within the environment. Additionally or alternatively,display(s) 102 may completely immerse the user is a purely virtual,digital environment (e.g., VR) such that, for practical purposes, thephysical environment is no longer visible to the user.

Display 102 may include a liquid crystal display (LCD) display 102 witha backlight or the like. In other cases, display 102 may include one ormore transparent or translucent organic light-emitting diode (OLED)displays comprising one or more flexible sheets of organicelectroluminescent material. Additionally or alternatively, an opticalprojector device may be aimed at display 102, which may include aprojection display or the like.

In some cases, a first display portion may be disposed in front of theuser's right eye, and a second display portion may be disposed in frontof the user's left eye. Alternatively, a single display may be used forboth eyes.

In various implementations, xR headset 101 also includes sensors 104Aand 104B. For example, sensors 104A and/or 104B may include cameras(e.g., IR cameras, B&W cameras, or any other type of camera), AmbientLight Sensors (ALS), and/or inertial sensors (e.g., accelerometers,etc.). In this implementation, camera 104A is inward-looking (e.g.,aimed at the user's eyes), whereas camera 104B is outward-looking (e.g.,aimed forward, to capture what the user sees).

FIG. 2 is a block diagram of non-limiting examples of xR headset 101components according to some embodiments. As depicted, controller 200includes hardware memory storage device 201 having program instructionsstored thereon that, upon execution by controller 200, cause xR headset101 to create and/or display an all-immersive virtual environment,and/or to overlay digitally-created content or images on panel orsurface 202 (e.g., an LCD panel, an OLED film, a projection surface,etc.) over the user's natural visual perception of the real-world.

As such, controller 200 drives panel or surface 202 and/or backlight 203(e.g., an LED light) of display 102 in order to provide the user with avisual xR experience. Moreover, controller 200 may employ sensors 104-Bto implement a number of tracking techniques usable in the rendering ofthe xR images (e.g., the user's own location, head position, etc.) foruser 100, and/or to change one or more aspects of xR headset 101′sdisplay 102 and/or digitally-created content or images (e.g., relativesize of other entities, perspective, field of view, etc.). Sensorcontrol and panel control can also physically be separate controllers inother implementations.

In some implementations, controller 200 may communicate with externalIHS 300 via wired or wireless connection 205 (e.g., WiGig, WiFi, etc.)using RF system 206. A non-limiting example of RF system 206 isdiscussed in FIG. 4 below. Although FIG. 2 shows RF system 206 fullyintegrated in xR headset 101, in other examples RF system 315 may beexternally mounted and not fully integrated.

As a person of ordinary skill in the art will recognize in light of thisdisclosure, FIG. 2 shows portions of xR headset 101 that are relevantfor understanding the systems and methods described herein. Yet, itshould be noted that power systems and other components may also bepresent. In some cases, xR headset 101 may itself be an IHS, such one ormore elements of IHS 300 may be built on frame or body 103 of xR headset101.

FIG. 3 is a block diagram of non-limiting examples of InformationHandling System (IHS) components according to some embodiments. In somecases, IHS 300 may be used as an external device in wired or wirelesscommunication with xR headset 101. Additionally or alternatively, xRheadset 101 may include component(s) of IHS 300.

For purposes of this disclosure, an IHS may include any instrumentalityor aggregate of instrumentalities operable to compute, calculate,determine, classify, process, transmit, receive, retrieve, originate,switch, store, display, communicate, manifest, detect, record,reproduce, handle, or utilize any form of information, intelligence, ordata for business, scientific, control, or other purposes. For example,an IHS may be a personal computer (e.g., desktop or laptop), tabletcomputer, mobile device (e.g., Personal Digital Assistant (PDA) or smartphone), server (e.g., blade server or rack server), a network storagedevice, or any other suitable device and may vary in size, shape,performance, functionality, and price. An IHS may include Random AccessMemory (RAM), one or more processing resources such as a CentralProcessing Unit (CPU) or hardware or software control logic, Read-OnlyMemory (ROM), and/or other types of nonvolatile memory.

Additional components of an IHS may include one or more disk drives, oneor more network ports for communicating with external devices as well asvarious I/O devices, such as a keyboard, a mouse, touchscreen, and/or avideo display. An IHS may also include one or more buses operable totransmit communications between the various hardware components. Anexample of an IHS is described in more detail below.

As shown in the implementation of FIG. 3, IHS 300 may include one ormore processors 301. In various embodiments, IHS 300 may be asingle-processor system including one processor 301, or amulti-processor system including two or more processors 301.Processor(s) 301 may include any processor capable of executing programinstructions, such as any general-purpose or embedded processorsimplementing any of a variety of Instruction Set Architectures (ISAs).

IHS 300 includes chipset 302 that may have one or more integratedcircuits that are coupled to processor(s) 301. In certain embodiments,chipset 302 may utilize a QPI (QuickPath Interconnect) bus 303 forcommunicating with processor(s) 301. Chipset 302 provides processor(s)301 with access to a variety of resources. For instance, chipset 302provides access to system memory 305 over memory bus 304. System memory305 may be configured to store program instructions executable by,and/or data accessible to, processors(s) 301. In various embodiments,system memory 305 may be implemented using any suitable memorytechnology, such as static RAM (SRAM), dynamic RAM (DRAM) ornonvolatile/Flash-type memory.

Chipset 302 may also provide access to Graphics Processing Unit (GPU)307. In certain embodiments, graphics processor 307 may be disposedwithin one or more video or graphics cards that have been installed ascomponents of the IHS 300. Graphics processor 307 may be coupled tochipset 302 via graphics bus 306 such as provided by an AGP (AcceleratedGraphics Port) bus or a PCIe (Peripheral Component Interconnect Express)bus. In certain embodiments, a GPU 307 generates display data andprovides it to xR headset 101 (or any other display device 308).

In certain embodiments, chipset 302 may also provide access to one ormore user input devices 311. In those cases, chipset 302 may be coupledto a super I/O controller 310 that provides interfaces for a variety ofuser input devices 311, in particular lower bandwidth and low data ratedevices. For instance, super I/O controller 310 may provide access to akeyboard and mouse or other peripheral input devices. In certainembodiments, super I/O controller 310 may be used to interface withcoupled user input devices 311 such as keypads, biometric scanningdevices, and voice or optical recognition devices. These I/O devices mayinterface with super I/O controller 310 through wired or wirelessconnections. In certain embodiments, chipset 302 may be coupled to superI/O controller 310 via Low Pin Count (LPC) bus 313.

Other resources may also be coupled to the processor(s) 301 of IHS 300through chipset 302. In certain embodiments, chipset 302 may be coupledto network interface 309, such as provided by a Network InterfaceController (NIC) coupled to IHS 300. For example, network interface 309may be coupled to chipset 302 via PCIe bus 312. According to variousembodiments, network interface 309 may also support communication overvarious wired and/or wireless networks and protocols (e.g., WiGig,Wi-Fi, Bluetooth, etc.). In certain embodiments, chipset 302 may alsoprovide access to one or more Universal Serial Bus (USB) ports 316.

Chipset 302 also provides access to RF system 315, similar thepreviously discussed RF system 206, and a non-limiting example of whichis discussed in more detail in FIG. 4 below. Chipset 302 utilizesinterface connection 318 in order to communicate with RF system 315.

In certain embodiments, chipset 302 may provide access to other types ofstorage devices. For instance, IHS 300 may utilize one or more magneticdisk storage devices, optical drives, solid state drives, orremovable-media drives.

Upon powering or restarting IHS 300, processor(s) 301 may utilizeinstructions stored in Basic Input/Output System (BIOS) or UnifiedExtensible Firmware Interface (UEFI) chip or firmware 317 to initializeand test hardware components coupled to the IHS 300 and to load anOperating System (OS) for use by IHS 300. Generally speaking, BIOS 317provides an abstraction layer that allows the OS to interface withcertain hardware components that utilized by IHS 300. It is through thishardware abstraction layer that software executed by the processor(s)301 of IHS 300 is able to interface with I/O devices that coupled to IHS300.

In various embodiments, IHS 300 may not include each of the componentsshown in FIG. 3. Additionally or alternatively, IHS 300 may includevarious components in addition to those that are shown. Furthermore,some components that are represented as separate components in FIG. 3may, in some embodiments, be integrated with other components. Forexample, in various implementations, all or a portion of thefunctionality provided by the illustrated components may instead beprovided by components integrated into the one or more processor(s) 301as a system-on-a-chip (SOC) or the like.

FIG. 4 is a block diagram of a non-limiting example of RF circuit 400.In various embodiments, RF circuit 400 may be used to implement RFsystems 206 and/or 315 to thereby establish and maintain communicationchannel 205.

As shown, RF circuit 400 includes antenna array 401, baseband module402, radio frequency module 404, amplifier 406, and switch 408. Antennaarray 401 comprises individual antennas 410, 412, and 414. Arepresentation of spatial coverage and general directivity associatedwith antennas 410, 412, and 414 is also illustrated as spatial coverageareas 411, 413, and 415, respectively.

In some embodiments, antennas 410, 412, and 414 may be clusteredtogether, or individual antennas may be located in disparate locations(e.g., in different walls of a room where the xR application isongoing). At least one of antennas 410, 412, or 414 may be oriented in adifferent direction relative to another antenna. In some cases, anyselected individual antenna(s) may be enabled (e.g., while the remainingantennas are disabled) using switch 408, to provide selectabledirectivity, radiation patterns, and/or beamforming.

Baseband module 402 is configured to encode digital information fortransmission by IHS 300 or to decode information that has been receivedby IHS 300. Baseband module 402 provides network protocol-layerfunctions such as packetizing of the digital data information. Basebandmodule 402 is further operable to configure switch 408 to select anindividual one or more of antennas 410, 412, and 414 for operation.

RF module 404 and amplifier 406 modulate and amplify an RF signal (e.g.,an approximately 60 GHz RF signal) to encode the baseband informationand to supply the radio frequency signal to switch 408 for transmissionby a selected one or more of antennas 410, 412, and 414. While operatingas a receiver, a radio frequency signal received at a selected antennais detected and demodulated by amplifier 406 and radio frequency module404, and the information is provided to baseband module 402. Basebandmodule 402 further decodes the information to provide digitalinformation to IHS 300.

Modulation methods may include, but are not limited to, orthogonalfrequency-division multiplexing (OFDM), quadrature amplitude modulation(QAM), binary phase-shift keying (BPSK), and quadrature phase-shiftkeying (QPSK).

Switch 408 selects which of antennas 410, 412, and 414 are active bycompleting an electrical connection with the desired antenna(s),enabling operation of the selected antenna(s). Remaining antenna(s), ifany, are consequently deselected and thus disabled. Switch 408 mayinclude electromechanical switches, micro-electromechanical (MEM)switches, semiconductor transistor switches, PIN diodes (diodes with anintrinsic region), or another type of switch suitable for switchingradio frequency signals. In some implementations, switch 408 may becontrolled by baseband module 402. Baseband module 402 may select one ormore of antennas 410, 412, and 414 to enable those antenna(s) totransmit or receive the radio frequency signal.

Selectable configuration settings of an antenna system, such as antennaarray 401, include its directivity and gain, among other attributes. Thedirectivity of antenna array 401 relates to the spatial coverage ofantenna array 401, which in part determines the strength of receivedradio frequency signals based on the physical location and orientationof the transmitter antenna system and of a receiver antenna system. Thespatial coverage of an antenna array 401 is further determined based onthe number and type of antennas included in the antenna array 401,signal interference, loss of signal energy due to absorption, and thelike.

Broadly speaking, an antenna is a resonant circuit capable oftransmitting or receiving a radio frequency signal. There are many typesof antennas, including monopole, dipole, patch, and others. Antennasystems can be further classified based on how signals are provided toone or more antennas, such as: beam-forming antennas, spatialmultiplexing antennas, or the like.

Antenna array 401 includes two or more individual antennas 410, 412, and414, which do not necessarily share a common orientation. An individualantenna, or set of antennas, may be selectively enabled using a switchdevice to control directivity characteristics. In some cases, a set ofantennas may be fabricated on a single Printed Circuit Board (PCB).

In some embodiments, antenna array 401 may operate within the 60 GHzradio frequency band, for example, within a frequency range extendingfrom approximately 57 GHz to 66 GHz. For example, a network bandwidth ofapproximately 4 gigabits per second (Gb/s) can be implemented that cansupport transfer of video information between xR headset 101 and IHS300. In other embodiments, however, antenna array 401 may operate withinother radio frequency bands, for example, from approximately 30 GHz to200 GHz.

The spatial coverage provided by an individual antenna operating at 60GHz can be relatively small compared to the spatial coverage that may beprovided other types of antennas, such as a monopole antenna, becausesmall antennas are highly directional. Therefore, the range ofcommunication channel 205 that can be achieved between xR headset 101and IHS 300 is dependent on the mutual orientation of the transmittingantenna and the receiving antenna.

FIG. 5 is a diagram of a non-limiting example of an xR applicationaccording to some embodiments. As illustrated, user 100 wearing xRheadset 101 is located in room 500. Headset 101 is wirelessly tetheredto IHS 300 via communication channel 205, created by RF systems 206 and315 implementing different instances of RF circuit 400. For ease ofexplanation, the same spatial coverage areas 411, 413, and 415 producedby antennas 410, 412, and 414 of antenna array 401 are representedindividually as a respective lobe or beam. It should be noted, however,that in other sitautions, any number of antennas and/or antennas arraysmay be distributed across room 500, each antenna system capable ofproducing a wide range of different radiation patterns and/or havingdifferent beamforming capabilities.

Using the systems and methods described herein, boundary 503 may bedefined between beams 411 and 413, and boundary 504 may be definedbetween beams 413 and 415. As user 100 moves in direction 501 or 502towards boundary 503 or 504, respectively, systems and methods describedherein may contemporaneously and/or predictively change a configurationof antenna array 401 to enable IHS 300 to wirelessly transmit xR contentto xR headset 101 an improved or optimized manner. Although three beamsor lobes and two boundaries for illustration purposes, it should benoted that the number of lobes and/or boundaries used may vary dependingupon the application, location of the user, interfering objects betweenxR headset 101 and IHS 300, etc.

In various embodiments, systems and methods described herein mayincrease the spatial coverage of an antenna system, such as array 401,for instance, by receiving graphical motion vector data representativeof a direction of travel of user 100 wearing xR headset 101, and thenchanging a configuration of selected antenna(s) 410, 412 and/or 414 ofantenna array 401 based upon that motion vector data.

In some cases, motion vector data may be used to predict a futureposition of user 100 in room 500, and to prepare array 401 to switch itsconfiguration with reduce latency or lag. For example, embodimentsdescribed herein may determine a position, speed, and/or acceleration ofuser 100 in room 500, predict the moment in time when user 100 is goingto cross a selected boundary, and switch the configuration of array 401concurrently or simultaneously with user 100 crossing that boundary.

As used, herein a “motion vector” is a two (or n) -dimensional vectorused for an encoding, compression, and/or image manipulation thatprovides an offset in the coordinates of a picture or image with respectto the coordinates of a reference picture or image.

As an example, consider that video images provided from IHS 300 to xRheadset 101 may be encoded, compressed, or otherwise manipulated priorto being transmitted over channel 205. For example, as part of thismanipulation, a video frame or image may be divided into 16×16 pixelmacroblocks. Each macroblock may contain 16×16 luminance pixels and 8×8red/blue chrominance pixels. The luminance block is then split, forexample, into four 8×8 blocks. This process results in six 8×8 blocks,upon which a discrete cosine transform (DCT) may be performed.

Still as part of the aforementioned encoding, compression, ormanipulation, each macroblock may be matched to a 16×16 pixel region ofa previous video frame or image. Once a suitable match is found, a“motion vector” (in this case, a vector pointing from the center of themacroblock to the center of the region that is the closest match) isassigned to that macroblock.

As used herein, examples of “motion vector data” include, but are notlimited to, a first position of a macroblock in a first frame, a secondposition of the macroblock in a second frame, a time interval betweenthe second frame and the first frame, and a distance between the secondand first positions.

FIGS. 6A and 6B are graphs illustrating non-limiting examples of motionvector data according to some embodiments. As shown, apreviously-displayed, reference image or video frame 600A includesmacroblock 601A disposed in first position 602. The same or most closelymatching macroblock 601 is found in subsequent frame 600B (e.g.,immediately after frame 600A is displayed, or a number of framesafterwards), but now in second position 603. As such, the direction andmagnitude of motion vector 604 may be obtained, indicating that theuser's perspective has changed at a particular rate, in a discernibledirection.

Additional motion vector data may be readily derived by a person ofordinary skill in the art, in light of this disclosure, based upon theaforementioned data such as, for example, a location, a direction ofmovement, a linear speed, an angular speed, a linear acceleration, or anangular acceleration of user 100.

Returning to FIG. 5, systems and methods described herein may increasethe spatial coverage of antenna array 401, for instance, by turningindividual antenna 410 on in response to user 100 moving towards, beingabout to reach, and/or crossing boundary 503, as determined based uponmotion vector data that indicates the direction, speed, and/oracceleration of movement 501. Additionally or alternatively, individualantenna 414 may be turned off in response to the user moving towards,being about to reach, and/or crossing boundary 503.

Conversely, individual antenna 414 may be turned on in response to user100 moving towards, being about to reach, and/or crossing boundary 504,as determined based upon motion vector data that indicates thedirection, speed, and/or acceleration of movement 502. Additionally oralternatively, individual antenna 410 may be turned off in response tothe user moving towards, being about to reach, and/or crossing boundary504.

In many implementations, in addition to turning individual antennas onand off, the change of configuration may include increasing ordecreasing an amplification of a signal received or transmitted by anindividual antenna of antenna array 401 in response to the user movingtowards, being about to reach, and/or crossing a selected boundary.Additionally or alternatively, the change of configuration may includethe application of different beamforming settings to antenna array 401to increase a signal strength between xR headset 101 and the IHS 300 inresponse to user 100 moving towards, being about to reach, and/orcrossing a boundary.

In addition or as an alternative to increase spatial coverage, systemsand methods described herein may change the configuration ofcommunication channel 205 by switching between different communicationprotocols in response to the user moving towards, being about to reach,and/or crossing a selected boundary. For example, if a particularantenna configuration does not provide a sufficiently strong orhigh-data rate RF signal, the system may switch from a WiGig protocol toa WiFi protocol.

In some cases, as a fallback operation, the change of antennaconfiguration based upon motion vector data may be performedconcurrently with or in response to a determination that a signalstrength of communication channel 205 is above a threshold value.Additionally or alternatively, the change of the antenna configurationmay be followed by a drop in a signal strength of the transmission ofthe xR content below a threshold value, in which case these systems andmethods may return antenna array 401 to a previous configuration.

FIG. 7 is a flowchart of a non-limiting example of a method forcorrelating wireless communication settings with a user's locationand/or movement. In some embodiments, method 700 may be performed as atraining or mapping operation prior to normal execution of an xRapplication.

As shown method 700 begins at block 701. At block 702, user 100 holds orwears xR headset 101, and initiates a setup procedure with respect toIHS 300. As part of the setup, at block 703, user 100 follows a trainingroutine by generally walking in a predefined pattern within an activearea of room 500, therefore creating a persistent virtual map of thephysical space.

At block 704 and in a loop with block 703 (e.g., executing in parallel),method 700 establishes the directionality and signal strength of antennaarray 401 using a beam-switching protocol or technique. Antennaselection is correlated with location and orientation data from thepersistent map and stored as an antenna characterization table.

At block 705, method 700 selects one or more boundary conditions. Insome cases, boundary or trigger conditions may be automaticallyestablished based on the results of blocks 703 and 704 (e.g., stored inthe antenna characterization table). In other cases, however, boundariesor triggers may be selected manually. Method 700 ends at block 706.

Still referring to method 700, it should be noted that xR mapping andtracking may be performed using different approaches. For example, withthe “inside-out” approach, camera sensors and inertial sensors may bemounted on xR headset 101 to establish and maintain a persistent map ofthe active space (e.g., room 500), and simultaneously track the locationand the orientation of xR headset 101 within that space. In the“outside-in” approach, standalone IR transmitter/receiver pairs(referred to as “lighthouses”) establish a predefined physical activityspace. These lighthouses track xR headset 101 within the defined spaceby transmitting or receiving signals to or from corresponding receivesor transmitters on xR headset 101 (e.g., RF system 206).

Method 700 implements the “inside-out” approach to tracking, but it willbe readily appreciated by a person of ordinary skill in the art in lightof this disclosure that “outside-in” techniques may also be used.

FIG. 8 is a flowchart of a non-limiting example of a method forconfiguring wireless communications using motion vector data. In someembodiments, method 800 may be performed upon completion of method 700of FIG. 7.

Method 800 begins at block 801. At block 802, while viewing xR contenton xR headset 101, user 100 moves through the active area (e.g., room500) and continually changes head position. At block 803, position andhead orientation tracking data is provided to a compute unit (e.g.,controller 200 of headset 101, IHS 300, on the cloud, etc.).

At block 804, frame data is predictively rendered based on motion vectordata establishing 6-degree of freedom (6DoF) head position and locationin the active area (or scene). A motion vector table is generated (e.g.,by GPU 307) and stored (e.g., in GPU or CPU memory). At block 805,periodically and/or continuously, motion vector data is used to derivethe direction of travel of user 100 in room 500, and compared to theboundary conditions stored in the correlated antenna data table ofmethod 700.

At block 806, method 800 determines, based upon the comparison of block805, whether user 100 is moving towards, is about to reach, and/or iscrossing boundary. If user 100 is not moving closer to any boundary,block 807 maintains the current configuration of antenna array 401, andcontrol returns to block 805.

Conversely, if block 806 determines that user 100 is moving towards, isabout to reach, and/or is crossing a given boundary, block 808 switchesa configuration aspect of antenna array 401 (e.g., switching individualantennas or and off) following the antenna configuration table obtainedusing method 700. It should be noted that, in some cases, known methodsfor initiating, disassociating a previous antenna, associating a newantenna, etc. may be dependent on the protocol established between xRheadset 101 and IHS 300. Method 800 ends at 809.

As shown in method 800, under normal operation, head orientation andlocation in the active area are continuously tracked through the use ofcamera and/or inertial units in xR headset 101 or in communication withan external lighthouse, as user 100 moves about room 500. Frame dataprovided to xR headset 101 (with the xR content) is predictivelyrendered based on that incoming tracking data.

GPU 307 or CPU 301 takes the latest arriving tracking data prior totransmission and adjusts frame view/perspective based on the user 100'smost recent position. Body movement tracking is then used to determinethe direction and speed of travel of user 100 relative to boundaryconditions.

It should be understood that various operations described herein may beimplemented in software executed by logic or processing circuitry,hardware, or a combination thereof. The order in which each operation ofa given method is performed may be changed, and various operations maybe added, reordered, combined, omitted, modified, etc. It is intendedthat the invention(s) described herein embrace all such modificationsand changes and, accordingly, the above description should be regardedin an illustrative rather than a restrictive sense.

Although the invention(s) is/are described herein with reference tospecific embodiments, various modifications and changes can be madewithout departing from the scope of the present invention(s), as setforth in the claims below. Accordingly, the specification and figuresare to be regarded in an illustrative rather than a restrictive sense,and all such modifications are intended to be included within the scopeof the present invention(s). Any benefits, advantages, or solutions toproblems that are described herein with regard to specific embodimentsare not intended to be construed as a critical, required, or essentialfeature or element of any or all the claims.

Unless stated otherwise, terms such as “first” and “second” are used toarbitrarily distinguish between the elements such terms describe. Thus,these terms are not necessarily intended to indicate temporal or otherprioritization of such elements. The terms “coupled” or “operablycoupled” are defined as connected, although not necessarily directly,and not necessarily mechanically. The terms “a” and “an” are defined asone or more unless stated otherwise. The terms “comprise” (and any formof comprise, such as “comprises” and “comprising”), “have” (and any formof have, such as “has” and “having”), “include” (and any form ofinclude, such as “includes” and “including”) and “contain” (and any formof contain, such as “contains” and “containing”) are open-ended linkingverbs. As a result, a system, device, or apparatus that “comprises,”“has,” “includes” or “contains” one or more elements possesses those oneor more elements but is not limited to possessing only those one or moreelements. Similarly, a method or process that “comprises,” “has,”“includes” or “contains” one or more operations possesses those one ormore operations but is not limited to possessing only those one or moreoperations.

1. An Information Handling System (IHS), comprising: a processor; and amemory coupled to the processor, the memory having program instructionsstored thereon that, upon execution by the processor, cause the IHS to:receive motion vector data representative of a direction of travel of auser wearing a virtual, augmented, or mixed reality (xR) headset; andchange a configuration of an antenna based upon the motion vector data,wherein the antenna enables the IHS to wirelessly transmit xR content tothe xR headset.
 2. The IHS of claim 1, wherein the motion vector dataincludes a first position of a macroblock in a first frame, a secondposition of the macroblock in a second frame, a time interval betweenthe second frame and the first frame, and a distance between the secondand first positions.
 3. The IHS of claim 2, wherein the first and secondframes are obtained, at least in part, using a camera mounted on the xRheadset, and wherein the macroblock is identified as a subset of pixelshaving a contrast above or below a threshold value.
 4. The IHS of claim1, wherein the motion vector data includes at least one of: a location,a direction of movement, a linear speed, an angular speed, a linearacceleration, or an angular acceleration of the user.
 5. The IHS ofclaim 1, wherein the program instructions, upon execution, further causethe IHS to determine, using the motion vector data, that the user hasreached a selected boundary within a room.
 6. The IHS of claim 1,wherein the antenna is part of an antenna array.
 7. The IHS of claim 6,wherein the antenna array is configured to provide a multi-gigabit persecond speed wireless communication over a 60 GHz frequency band.
 8. TheIHS of claim 6, wherein the change of the configuration includes achange of a radiation pattern of the antenna array.
 9. The IHS of claim6, wherein the antenna array is configurable to provide a plurality ofdifferent radiation patterns, wherein each different radiation patternhas a distinct lobe configuration, and wherein the selected boundary isdisposed between two neighboring lobes.
 10. The IHS of claim 9, whereinthe change of the configuration includes: turning a given antenna of theantenna array on in response to the user having reached the selectedboundary, or turning the given antenna off in response to the userhaving reached the selected boundary.
 11. The IHS of claim 9, whereinthe change of the configuration includes increasing an amplification ofa signal received or transmitted by an individual antenna of the antennaarray in response to the user having reached the selected boundary. 12.The IHS of claim 9, wherein the change of the configuration includesapplication of different beamforming settings to the antenna array toincrease a signal strength between the xR headset and the IHS inresponse to the user having reached the selected boundary.
 13. The IHSof claim 9, wherein changing the configuration of the antenna includeschanging a communication protocol between the IHS and the xR headset inresponse to the user having reached the selected boundary.
 14. The IHSof claim 1, wherein the motion vector data is predictive of thedirection of travel of the user, and wherein the change of theconfiguration is performed in anticipation of the user reaching theselected boundary.
 15. The IHS of claim 1, wherein the change of theconfiguration is in response to another determination that a signalstrength of the transmission of the xR content is above a thresholdvalue.
 16. The IHS of claim 1, wherein the program instructions, uponexecution, further cause the IHS to: determine that the change of theconfiguration is followed by a drop in a signal strength of thetransmission of the xR content below a threshold value; and return theantenna to a previous configuration.
 17. A method, comprising: receivingdata representative of a direction of travel of a user wearing avirtual, augmented, or mixed reality headset, wherein the data enablesthe headset, or an Information Handling System (IHS) in communicationwith the headset, to produce a graphical scene for display to the user;and change a configuration of an antenna based upon the data, whereinthe antenna enables the IHS to maintain a wireless communication withthe headset.
 18. The method of claim 17, wherein the data includes atleast one of: a first position of a macroblock in a first frame, asecond position of the macroblock in a second frame, a time intervalbetween the second frame and the first frame, or a distance between thesecond and first positions, wherein the antenna is part of an antennaarray, wherein the antenna array is configurable to provide a pluralityof different radiation patterns, wherein each different radiationpattern has a distinct lobe configuration, wherein a boundary isselected between two neighboring lobes, and wherein the change of theconfiguration includes application of different beamforming settings tothe antenna array as the user moves with respect to the IHS.
 19. Ahardware memory storage device having program instructions storedthereon that, upon execution by a processor, cause the processor to:derive data representative of a direction of travel of a user wearing avirtual, augmented, or mixed reality headset, wherein the data enablesthe headset, or an Information Handling System (IHS) in communicationwith the headset, to produce a graphical scene for display to the user;and change a configuration of an antenna based upon the data, whereinthe antenna enables the IHS to maintain a wireless communication withthe headset.
 20. The hardware memory storage device of claim 19, whereinthe antenna is part of an antenna array, wherein the antenna array isconfigurable to provide a plurality of different radiation patterns,wherein each different radiation pattern has a distinct lobeconfiguration, wherein a boundary is selected between two neighboringlobes, and wherein the change of the configuration includes applicationof different beamforming settings to the antenna array as the user moveswith respect to the IHS.